package interfaces;

import java.util.List;

/* Interface a ser implementada por um job */

public interface IJob {

	byte[] getDescription();

	byte[] getResultDescription();
	
	void setResultDescription(byte[] resultDesc);

	void solve();

	boolean isSolved();

	//LinkedList<InterfaceJob> breakJob(int workloadWorker);
	List<IJob> breakJob();

	void setSubResult(byte[] subResultDescription);

	boolean isRemote();

	void setRemote(boolean remote);

	void setID(String jobId);

	String getID();

	int getWorkload();

	void setWorkload(int workload);

	void setWorkerIdSolvedJob(String workerId);

	String getWorkerIdSolvedJob();
	
	void setParentJob(String idParentJob);
	
	String getParentJob();
	
	void setSubJobCount(int subJobCount);
	
	int getSubJobCount();
	
	void setExecBegin(long time);
	
	long getExecBegin();
	
	void setExecTime(long time);
	
	long getExecTime();
	
	void setNumero(int numero);
	
	int getNumero();
	
	void setResult(long result);
	
	long getResult();
}
